package com.ssish.saas.eccs.mapper;

import com.ssish.saas.eccs.model.Employee;
import com.ssish.saas.eccs.model.EmployeeExample;
import java.util.List;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;

public interface EmployeeMapper {
    int countByExample(EmployeeExample example);

    int deleteByExample(EmployeeExample example);

    @Insert({
        "insert into EMPLOYEE (AR_GRACE, CARD_ISSUED, ",
        "DESIGNATION, UNIT, ",
        "RECORD_STATUS, DEPARTMENT, ",
        "BRANCH, LOCATION, ",
        "SUBSIDIARY, LEGAL_ENTITY, ",
        "CORP_CODE, COST_CENTER, ",
        "NO_OF_CHILDREN, EMAIL, ",
        "ACTIVE_FLAG, LASTEDIT_DATE, ",
        "LTD_SELF_CONSUMP, LTD_FAMILY_CONSUMP, ",
        "LTD_ALLFAMILY_CONSUMP, USER_CODE, ",
        "SPOUSE_EMP, SPOUSE_EMP_ID, ",
        "OFFICE_CODE, NP_VISIT, ",
        "OPBAL_DENTAL, TM_EMP_CODE, ",
        "WARD_CLASS, PAYOR_CODE, ",
        "LAST_NAME, FIRST_NAME, AR_DUEDATE, ",
        "EMPLOYEE_ID, EMP_NAME, ",
        "OLD_IC, NEW_IC, DATE_OF_BIRTH, ",
        "BIRTH_CERT, PASSPORT_NO, ",
        "POLICY_NO, CONTRACT_NO, ",
        "CARD_NO, STAFF_NO, GENDER, ",
        "MARITAL_STATUS, ETHNIC_ID, ",
        "NATIONALITY, ADDRESS, ",
        "POSTCODE, CITY, ",
        "STATE, COUNTRY, ",
        "TEL_NO1, TEL_NO2, ",
        "INCOME_TAX_NO, SOCSO_NO, ",
        "OCCUPATION, EMPLOYMENT_DATE, ",
        "TERMINATION_DATE, EMPLOYMENT_STATUS, ",
        "REACTIVATION_DATE, ACTIVATION_DATE, ",
        "CANCELLATION_DATE, PAYOR_MEMBER_ID, ",
        "AR_FLAG, MF_FLAG, ABL_FLAG, ",
        "MF_DUEDATE, MF_GRACE, ",
        "AGENT_CODE, AGENCY_CODE, ",
        "BROKER_CODE, LANGUAGE, ",
        "NATURE_OF_WORK, GROSS_PREMIUM, ",
        "AGENT_COMM, MGMT_FEES, ",
        "MCO_FEES, MNRB_RISK, ",
        "TEL_MOBILE, PASSPORT_COUNTRY, ",
        "MBA_POLICY_START_DATE, MBA_ACCOUNT_TYP, ",
        "ENDORSEMENT_DATE, OTHER_PRE_EXISTING, ",
        "POLICY_ENDORSE, DEPENDENT_ID, ",
        "RELATIONSHIP, AGENT_TEAM, ",
        "POLICY_OWNER, BLOOD_TYPE, ",
        "WEIGHT, HEIGHT, ",
        "PRE_DIAGNOSIS1, PRE_DIAGNOSIS1_SINCE, ",
        "PRE_TREATMENT1, PRE_DIAGNOSIS2, ",
        "PRE_DIAGNOSIS2_SINCE, PRE_TREATMENT2, ",
        "PRE_DIAGNOSIS3, PRE_DIAGNOSIS3_SINCE, ",
        "PRE_TREATMENT3, ALLERGY_DRUG, ",
        "ALLERGY_OTHERS, AGENT_UNIT, ",
        "ENGLISH_NAME, ENGLISH_ADDR, ",
        "LOA_DESC, PREFERRED_NAME, ",
        "RACE, PREMIUM_PAID_DATE, ",
        "MASTER_POLICY_NO, ID_TYPE, ",
        "POLICY_OWNER_ID_TYPE, POLICY_OWNER_ID_NO, ",
        "POLICY_OWNER_ADDRESS, POLICY_OWNER_TEL_NO1, ",
        "POLICY_OWNER_TEL_NO2, POLICY_OWNER_TEL_MOBILE, ",
        "SMOKER, THIRD_PARTY_POLICY, ",
        "POLICY_ENDORSEMENT_CODE, ORIGIN_CODE, ",
        "POLICY_STATUS_CHANGE_DATE, POLICY_ISSUE_DATE, ",
        "POLICY_END_DATE, CLIENT_ID, ",
        "POLICY_OWNER_CLIENT_ID, MEMBER_STATUS, ",
        "MEMBER_CLASS, BUSINESS_SOURCE, ",
        "PREMIUM_MODE, PREMIUM_FREQUENCY, ",
        "PREMIUM_GRACE_DATE, BANKCD, ",
        "BANKNM, BANKACCNO, ",
        "BANKACCNM, BANKBRHCD, ",
        "RESTRICTED_COUNTRY, DIVISION, ",
        "SUBDEPARTMENT, EMPLOYMENT_LOCATION, ",
        "EMPLOYMENT_REGION, EMPLOYMENT_CATEGORY, ",
        "MEMBER_CONTROL_NO, INSERT_BY, ",
        "INSERT_DATE, PAYOR_ENDORSE, ",
        "CORP_ENDORSE, ID_EXPIRE_DT)",
        "values (#{arGrace,jdbcType=DECIMAL}, #{cardIssued,jdbcType=CHAR}, ",
        "#{designation,jdbcType=VARCHAR}, #{unit,jdbcType=VARCHAR}, ",
        "#{recordStatus,jdbcType=DECIMAL}, #{department,jdbcType=VARCHAR}, ",
        "#{branch,jdbcType=OTHER}, #{location,jdbcType=VARCHAR}, ",
        "#{subsidiary,jdbcType=VARCHAR}, #{legalEntity,jdbcType=VARCHAR}, ",
        "#{corpCode,jdbcType=VARCHAR}, #{costCenter,jdbcType=VARCHAR}, ",
        "#{noOfChildren,jdbcType=DECIMAL}, #{email,jdbcType=VARCHAR}, ",
        "#{activeFlag,jdbcType=CHAR}, #{lasteditDate,jdbcType=TIMESTAMP}, ",
        "#{ltdSelfConsump,jdbcType=DECIMAL}, #{ltdFamilyConsump,jdbcType=DECIMAL}, ",
        "#{ltdAllfamilyConsump,jdbcType=DECIMAL}, #{userCode,jdbcType=VARCHAR}, ",
        "#{spouseEmp,jdbcType=CHAR}, #{spouseEmpId,jdbcType=CHAR}, ",
        "#{officeCode,jdbcType=VARCHAR}, #{npVisit,jdbcType=DECIMAL}, ",
        "#{opbalDental,jdbcType=DECIMAL}, #{tmEmpCode,jdbcType=CHAR}, ",
        "#{wardClass,jdbcType=CHAR}, #{payorCode,jdbcType=CHAR}, ",
        "#{lastName,jdbcType=CHAR}, #{firstName,jdbcType=CHAR}, #{arDuedate,jdbcType=TIMESTAMP}, ",
        "#{employeeId,jdbcType=CHAR}, #{empName,jdbcType=OTHER}, ",
        "#{oldIc,jdbcType=VARCHAR}, #{newIc,jdbcType=VARCHAR}, #{dateOfBirth,jdbcType=TIMESTAMP}, ",
        "#{birthCert,jdbcType=VARCHAR}, #{passportNo,jdbcType=VARCHAR}, ",
        "#{policyNo,jdbcType=VARCHAR}, #{contractNo,jdbcType=VARCHAR}, ",
        "#{cardNo,jdbcType=DECIMAL}, #{staffNo,jdbcType=CHAR}, #{gender,jdbcType=CHAR}, ",
        "#{maritalStatus,jdbcType=CHAR}, #{ethnicId,jdbcType=DECIMAL}, ",
        "#{nationality,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR}, ",
        "#{postcode,jdbcType=VARCHAR}, #{city,jdbcType=VARCHAR}, ",
        "#{state,jdbcType=VARCHAR}, #{country,jdbcType=VARCHAR}, ",
        "#{telNo1,jdbcType=VARCHAR}, #{telNo2,jdbcType=VARCHAR}, ",
        "#{incomeTaxNo,jdbcType=VARCHAR}, #{socsoNo,jdbcType=VARCHAR}, ",
        "#{occupation,jdbcType=VARCHAR}, #{employmentDate,jdbcType=TIMESTAMP}, ",
        "#{terminationDate,jdbcType=TIMESTAMP}, #{employmentStatus,jdbcType=CHAR}, ",
        "#{reactivationDate,jdbcType=TIMESTAMP}, #{activationDate,jdbcType=TIMESTAMP}, ",
        "#{cancellationDate,jdbcType=TIMESTAMP}, #{payorMemberId,jdbcType=VARCHAR}, ",
        "#{arFlag,jdbcType=CHAR}, #{mfFlag,jdbcType=CHAR}, #{ablFlag,jdbcType=CHAR}, ",
        "#{mfDuedate,jdbcType=TIMESTAMP}, #{mfGrace,jdbcType=DECIMAL}, ",
        "#{agentCode,jdbcType=VARCHAR}, #{agencyCode,jdbcType=VARCHAR}, ",
        "#{brokerCode,jdbcType=VARCHAR}, #{language,jdbcType=CHAR}, ",
        "#{natureOfWork,jdbcType=CHAR}, #{grossPremium,jdbcType=DECIMAL}, ",
        "#{agentComm,jdbcType=DECIMAL}, #{mgmtFees,jdbcType=DECIMAL}, ",
        "#{mcoFees,jdbcType=DECIMAL}, #{mnrbRisk,jdbcType=CHAR}, ",
        "#{telMobile,jdbcType=VARCHAR}, #{passportCountry,jdbcType=VARCHAR}, ",
        "#{mbaPolicyStartDate,jdbcType=TIMESTAMP}, #{mbaAccountTyp,jdbcType=VARCHAR}, ",
        "#{endorsementDate,jdbcType=TIMESTAMP}, #{otherPreExisting,jdbcType=VARCHAR}, ",
        "#{policyEndorse,jdbcType=VARCHAR}, #{dependentId,jdbcType=CHAR}, ",
        "#{relationship,jdbcType=VARCHAR}, #{agentTeam,jdbcType=VARCHAR}, ",
        "#{policyOwner,jdbcType=VARCHAR}, #{bloodType,jdbcType=VARCHAR}, ",
        "#{weight,jdbcType=DECIMAL}, #{height,jdbcType=DECIMAL}, ",
        "#{preDiagnosis1,jdbcType=VARCHAR}, #{preDiagnosis1Since,jdbcType=TIMESTAMP}, ",
        "#{preTreatment1,jdbcType=VARCHAR}, #{preDiagnosis2,jdbcType=VARCHAR}, ",
        "#{preDiagnosis2Since,jdbcType=TIMESTAMP}, #{preTreatment2,jdbcType=VARCHAR}, ",
        "#{preDiagnosis3,jdbcType=VARCHAR}, #{preDiagnosis3Since,jdbcType=TIMESTAMP}, ",
        "#{preTreatment3,jdbcType=VARCHAR}, #{allergyDrug,jdbcType=VARCHAR}, ",
        "#{allergyOthers,jdbcType=VARCHAR}, #{agentUnit,jdbcType=VARCHAR}, ",
        "#{englishName,jdbcType=VARCHAR}, #{englishAddr,jdbcType=VARCHAR}, ",
        "#{loaDesc,jdbcType=VARCHAR}, #{preferredName,jdbcType=VARCHAR}, ",
        "#{race,jdbcType=VARCHAR}, #{premiumPaidDate,jdbcType=TIMESTAMP}, ",
        "#{masterPolicyNo,jdbcType=VARCHAR}, #{idType,jdbcType=VARCHAR}, ",
        "#{policyOwnerIdType,jdbcType=VARCHAR}, #{policyOwnerIdNo,jdbcType=VARCHAR}, ",
        "#{policyOwnerAddress,jdbcType=VARCHAR}, #{policyOwnerTelNo1,jdbcType=VARCHAR}, ",
        "#{policyOwnerTelNo2,jdbcType=VARCHAR}, #{policyOwnerTelMobile,jdbcType=VARCHAR}, ",
        "#{smoker,jdbcType=CHAR}, #{thirdPartyPolicy,jdbcType=CHAR}, ",
        "#{policyEndorsementCode,jdbcType=VARCHAR}, #{originCode,jdbcType=VARCHAR}, ",
        "#{policyStatusChangeDate,jdbcType=TIMESTAMP}, #{policyIssueDate,jdbcType=TIMESTAMP}, ",
        "#{policyEndDate,jdbcType=TIMESTAMP}, #{clientId,jdbcType=VARCHAR}, ",
        "#{policyOwnerClientId,jdbcType=VARCHAR}, #{memberStatus,jdbcType=VARCHAR}, ",
        "#{memberClass,jdbcType=VARCHAR}, #{businessSource,jdbcType=VARCHAR}, ",
        "#{premiumMode,jdbcType=VARCHAR}, #{premiumFrequency,jdbcType=VARCHAR}, ",
        "#{premiumGraceDate,jdbcType=TIMESTAMP}, #{bankcd,jdbcType=VARCHAR}, ",
        "#{banknm,jdbcType=OTHER}, #{bankaccno,jdbcType=VARCHAR}, ",
        "#{bankaccnm,jdbcType=OTHER}, #{bankbrhcd,jdbcType=VARCHAR}, ",
        "#{restrictedCountry,jdbcType=VARCHAR}, #{division,jdbcType=VARCHAR}, ",
        "#{subdepartment,jdbcType=VARCHAR}, #{employmentLocation,jdbcType=VARCHAR}, ",
        "#{employmentRegion,jdbcType=VARCHAR}, #{employmentCategory,jdbcType=VARCHAR}, ",
        "#{memberControlNo,jdbcType=VARCHAR}, #{insertBy,jdbcType=VARCHAR}, ",
        "#{insertDate,jdbcType=TIMESTAMP}, #{payorEndorse,jdbcType=VARCHAR}, ",
        "#{corpEndorse,jdbcType=VARCHAR}, #{idExpireDt,jdbcType=TIMESTAMP})"
    })
    int insert(Employee record);

    int insertSelective(Employee record);

    List<Employee> selectByExample(EmployeeExample example);

    int updateByExampleSelective(@Param("record") Employee record, @Param("example") EmployeeExample example);

    int updateByExample(@Param("record") Employee record, @Param("example") EmployeeExample example);
}